java使用ID引用将JSON实体反序列化为POJO
假设我们有以下JSON示例:
{
"teachers": [{
"id": "abc",
"payment": 10,
"name": "xyz",
"clases": ["1", "3"]
}, {
"id": "qwe",
"payment": 12,
"name": "xcv",
"classes": ["1", "2"]
}],
"classes": [{
"id": "1",
"room": 7
}, {
"id": "2",
"room": 1
}, {
"id": "3",
"room": 2
}]
}
我想将其反序列化为Java对象(getter/setter-ommited):
class Teacher {
private String id;
private double payment;
private String name;
private List<CLassRoom> classRooms;
}
class ClassRoom {
private String id;
private int room;
}
如你所见,我们这里有一个参考资料。我知道我可以用Jackson
反序列化它(而且我很想),但问题是我无法触及DTO本身(因此不可能进行注释,也希望避免包装(许多类))。此外,如果反序列化的“配置”在单独的文件中(例如json schema
),那就更好了。我还想避免用户给出的一些标签——他应该只传递值给我。此外,如果他犯了一些错误,他应该知道错误在哪里。
另外,如果我能在json中操作字段名,那就太好了(有些客户端可能有不同的习惯)
我没有发现任何满足上述所有要求的东西(实体引用和错误处理是最重要的)。然而,我刚刚听说过json模式,所以它可能提供了这样的功能(但我没有找到)。有什么有用的参考/示例/库吗?我将感谢任何帮助
为了正确起见,假设给定的json是实例的关系型数据库快照。我只想像hibernate(或者实际上是JPA)那样创建整个实体:)
# 1 楼答案